.o0 {
    opacity: 0;
}

.o1 {
    opacity: 1;
}

.usn {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

html {
    cursor: grab;
}

body {
    background-image: url("img/default-bg.png");
    margin: 0;
    overflow: hidden;
}

.float-layer {
    position: absolute;
    left: 0;
    top: 0;
    width: 0;
    height: 0;
}

#onceLoading {
    width: 100%;
    height: 100%;
    background: #adadad url("img/bg.png");
    z-index: 10000;
}

#onceLoading > p {
    text-align: center;
    color: #2d98f7;
    font-style: italic;
    font-size: 22px;
    font-weight: bold;
    letter-spacing: 4px;
    padding: 0;
    margin: 0;
    margin-top: 4px;
}

#baseMap {
    width: 100%;
    height: 100%;
    background-repeat: no-repeat;
    /*z-index: 6660;*/
    cursor: default;
}

#markerBox {
    /*z-index: 6661;*/
}

#markerBox > .marker {
    position: absolute;
    left: 0;
    top: 0;
    width: 22px;
    height: 22px;
    background: url("img/marker-22-ff0000.png") no-repeat center;
    background-size: 22px;
    /* background-color: yellow; */
}

#markerBox > .marker.persisted {
    background-image: url("img/marker-22-1296db.png");
}

#markerBox > .marker.flicker2 {
    animation-name: flicker;
    animation-iteration-count: infinite;
    animation-direction: alternate;
    animation-duration: .5s;
    background-color: #000;
}

#markerBox.setting > .marker.hover:not(.active) {
    animation-name: flicker;
    animation-iteration-count: infinite;
    animation-direction: alternate;
    animation-duration: .5s;
    background-image: url("img/marker-22-23c08c.png");
}

#markerBox > .marker.active {
    background-image: url("img/marker-22-23c08c.png");
}

#markerBox > .marker.active2 {
    animation-name: flicker;
    animation-iteration-count: infinite;
    animation-direction: alternate;
    animation-duration: .25s;
}


#markerBox > .marker.active >.ripple{
    animation-name: kf-ripple;
    animation-iteration-count: infinite;
    animation-duration: 1s;
    width: 32px;
    height: 32px;
    /* border-radius: 50%; */
    background-color: #23c08c;
    transform: scale(0.1);
    transform-origin: 50% 50%;
    visibility: hidden;
    left: -5px;
    top: 6px;
    position: absolute;
    /* left: 8px; */
}

#markerBox:not(.setting,.tipping).rippling > .marker > .ripple {
    position: absolute;
    left: -5px;
    top: 4px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background-color: rgba(0, 255, 231, 0.9);
    transform: scale(0);
    transform-origin: 50% 50%;
    animation-name: kf-ripple-v2;
    animation-iteration-count: infinite;
    animation-duration: 1s;
    visibility: hidden;
}

#markerBox:not(.setting,.tipping).rippling > .marker > .ripple.inner {
    background-color: rgba(255, 255, 255, 0.9);
    animation-delay: .1s;
}

#markerBox > .marker > .info {
    width: 160px;
    height: 90px;
    position: absolute;
    left: -19px;
    bottom: 22px;
    z-index: 2021;
    visibility: hidden;
}

#markerBox:not(.setting,.marking,.tipping,.notip) > .marker:not(.persisted).hover > .info {
    visibility: visible;
}

#markerBox:not(.setting,.marking).tipping > .marker.persisted > .info {
    visibility: visible;
}

#markerBox.setting > .marker > .info {
    visibility: hidden;
}

#markerBox > .marker > .info > .content {
    width: 160px;
    height: 60px;
    background: rgba(35, 192, 140, 0.7);
}

#markerBox:not(.setting,.marking).tipping > .marker.persisted > .info > .content {
    background: rgba(17,149,219, 0.7);
}

#markerBox > .marker > .info > .content > .horn {
    width: 0;
    height: 0;
    position: absolute;
    right: 0;
    top: 0;
    border-style: solid;
    border-width: 10px 0 0 10px;
    border-color: rgba(35, 192, 140, 0.7) transparent;
    display: none;
}

#markerBox > .marker > .info > .content > .coords {
    width: 150px;
    height: 32px;
    /*background: #0000001c;*/
    position: absolute;
    left: 0;
    top: 0;
}

#markerBox > .marker > .info > .content > .coords>p.xy {
    margin: 0;
    padding: 0;
}

#markerBox > .marker > .info > .arrow {
    height: 0;
    border-style: solid;
    border-width: 30px 20px 0 0;
    border-color: rgba(35, 192, 140, 0.7) transparent;
    width: 0;
    margin-left: 30px;
}

#markerBox:not(.setting,.marking).tipping > .marker.persisted > .info > .arrow {
    border-color: rgba(17,149,219, 0.7) transparent;
}

#markerBox > .marker > .info-user {
    position: absolute;
    left: 15px;
    bottom: 22px;
    background: rgba(106, 106, 107, 0.6);
    background: rgba(13, 202, 240, 0.7);
    background: rgba(34, 191, 140, 0.7);
    width: 256px;
    height: 128px;
    border-radius: 2px;
    z-index: 2021;
    visibility: hidden;
}

#markerBox:not(.setting) > .marker.hover:not(.persisted) {
    background-image: url("img/marker-22-23c08c.png");
}

#markerBox:not(.setting,.marking,.tipping,.notip) > .marker:not(.persisted).hover > .info-user {
    background-image: url("img/bg.png");
    visibility: visible;
}

#markerBox:not(.setting,.marking).tipping > .marker.persisted > .info-user {
    background-color: rgba(18, 150, 219, 0.7);
    visibility: visible;
}

#markerBox > .marker > .info-user > .close-btn {
    width: 22px;
    height: 22px;
    position: absolute;
    right: -11px;
    top: -11px;
    border-radius: 50%;
    cursor: default;
    background: silver url("img/close.png");
    visibility: hidden;
}

#markerBox > .marker.persisted > .info-user > .close-btn {
    visibility: visible;
}

#markerBox.setting > .marker > .info-user {
    visibility: hidden;
}

#markerBox > .marker > .badges {
    position: absolute;
    right: 22px;
    bottom: 22px;
    min-width: 22px;
    height: 22px;
    line-height: 22px;
    border-radius: 13px;
    background-color: rgb(235,77,61);
    color: #fff;
    margin: 0;
    padding: 2px 4px 2px 4px;
    font-size: 17px;
    text-align: center;
    white-space: nowrap;
    visibility: hidden;
}

#markerBox > .marker > .badges.shown {
    visibility: visible;
}

#markerBox > .marker > .ripple4 {
    width: 200px;
    height: 86px;
    background: rgba(35, 192, 140, 0.7);
    position: absolute;
    left: 24px;
    bottom: 24px;
}

#markerPen {
    width: 22px;
    height: 22px;
    background: url("img/mark-point-22-red.png") no-repeat center;
    background: url("img/marker-22-ff0000.png") no-repeat center;
    background-size: 22px;
    /*z-index: 6660;*/
}

#maskLayer {
    width: 100%;
    height: 100%;
    background: none no-repeat 0 0;
    /*z-index: 6668;*/
}


.body {
    background: #f0f3fa none no-repeat scroll 0 0;
    margin: 0;
    overflow: hidden;
}

#maskLayer > .markerBox {
    width: 100%;
    height: 100%;
    /*background: rgba(0, 0, 255, 0.3);*/
    z-index: 6660;
}

#areaBox {
    background: black;
    z-index: 6660;
}

#smallMap {
    background: #168035;
    z-index: 6660;
    width: 88px;
    height: 88px;
    background: rgba(128, 128, 128, 0.1);
    background: rgba(42, 182, 216, 0.3);
    left: 5px;
    top: 5px;
}

#smallMap > .expand-region {
    left: 0;
    top: 0;
    width: 64px;
    height: 64px;
    border: 1px solid #e00;
}

#smallMap > .window-region {
    left: 0;
    top: 0;
    width: 48px;
    height: 48px;
    border: 1px solid #ff0;
}

#smallMap > .image-region {
    left: 0;
    top: 0;
    width: 36px;
    height: 36px;
    border: 1px solid #090;
}

#maskLayer>.sidebar {
    width: 36px;
    height: 100%;
    background: rgba(35, 192, 140, 0.3);
}

#menuBox {
    width: 100%;
    height: 100%;
    background-color: rgba(35, 192, 140, 0.1);
    z-index: 6669;
    cursor: default;
}

#menuBox > .panel {
    width: 38px;
    border: 1px solid rgb(35, 192, 140);
    position: absolute;
    left: 0;
    top: 0;
}

#menuBox > .panel > .item {
    margin: 4px;
    padding: 4px;
    background: rgba(35, 192, 140, 0.7);
    /*width: 176px;*/
    height: 22px;
}

#menuBox > .panel > .item > .icon, #menuBox > .panel > .item.apps > .slot > div {
    width: 22px;
    height: 22px;
    background: transparent url("img/apps.png") no-repeat center;
    background-size: 22px;
    float: left;
}

#menuBox > .panel > .item.apps > .slot > div {
    background-image: url("img/app.png");
}

#menuBox > .panel > .item.apps > .slot > div.bjwz {
    background-image: url("img/marker-22-ffffff.png");
}

#menuBox > .panel > .item.apps > .slot > div.xszb {
    background-image: url("img/xy.png");
}

#menuBox > .panel > .item.apps > .slot > div.xsdh {
    background-image: url("img/distribution-curve.png");
}

#menuBox > .panel > .item.apps > .slot > div.dtxs {
    background-image: url("img/ripple-22-ffffff.png");
}

#menuBox > .panel > .item.apps > .slot > div.jzdq {
    background-image: url("img/jzdq-22.png");
}

#menuBox > .panel > .item.apps > .slot > div.ksdw {
    background-image: url("img/take-aim-22-ffffff.png");
}

#menuBox > .panel > .item.apps > .slot > div.scwz {
    background-image: url("img/delete.png");
}

#menuBox > .panel > .item.apps > .slot > div.zyhz {
    /*background-image: url("img/distribution-curve.png");*/
}

#menuBox > .panel > .item.apps > .slot > div.cljl {
    /*background-image: url("img/ruler.png");*/
}

#menuBox > .panel > .item.apps > .slot > div.scale {
    /*background-image: url("img/measure.png");*/
}

#menuBox > .panel > .item.apps > .slot > div.checked {
    background-color: #0d6efd;
}

#menuBox > .panel > .item.apps > .slot > div:hover {
    background-color: #0b5ed7;
    background-color: #0074e8;
    background-color: #0a84ff;
}

#menuBox > .panel > .item > .slot {
    height: 22px;
    background: rgba(0, 0, 0, 0.1);
    /*margin-left: 4px;*/
    /*overflow: hidden;*/
}

#menuBox > .panel > .item > .slot > input[type="text"] {
    line-height: 24px;
    background: transparent;
    border: none;
    outline: none;
    color: #fff;
    padding: 0 0 0 4px;
}

/*******************************/
#container {
    /*是否可以丢弃*/
    display: none;
}

.func-row {
    width: 100%;
    height: 28px;
}

.func-row > * {
    float: left;
}

#panel {
    width: 0;
    height: 0;
    position: relative;
    border: 1px solid #0a84ff;
    overflow: hidden;
    background: #ff0000 none no-repeat scroll 0 0;
}

#panel > .mask {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 10242;
}

#panel > .marker:not(.editing):hover {
    animation-name: flicker;
    animation-iteration-count: infinite;
    animation-direction: alternate;
    animation-duration: .25s;
}

#panel > .info {
    width: 150px;
    height: 50px;
    position: absolute;
    left: 0;
    top: 0;
    background-color: rgba(0, 0, 0, 0.3);
    z-index: 10242;
}

#planDiv.draw {
    cursor: crosshair;
}

#ZoomBtn {
    position: absolute;
    left: 144px;
    top: 20px;
}

#drawFuncPanel, #planPanel {
    user-select: none;
}

#planImg {
    position: absolute;
}

#drawFuncPanel, #planPanel {
    width: 100%;
}

#drawFuncPanel {
    height: 32px;
    line-height: 32px;
}

#drawFuncPanel > input {
    height: 32px;
    margin: 0 4px 0 4px;
}

#drawFuncPanel > * {
    float: left;
}

.marker3 {
    width: 148px;
    height: 38px;
    position: absolute;
    left: 0;
    top: 0;
    border: 2px dotted #000;
    background-color: red;
    color: white;
    cursor: default;
}

.marker3.warning {
    background-color: red;
    animation-name: bg-flicker;
    animation-duration: 1s;
    animation-iteration-count: infinite;
}

.marker3 > p {
    margin: 0;
}

@keyframes flicker {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

@keyframes red-flicker {
    0% {
        background-color: #ffffff;
    }
    100% {
        background-color: #ff0000;
    }
}

@keyframes bg-flicker2-what-name-aha {
    0% {
        background-color: red;
        color: #fff;
    }
    50% {
        background-color: white;
        color: #000;
    }
    100% {
        background-color: red;
        color: #fff;
    }
}

#cursorPointer {
    position:absolute;
    top:-4px;
    left:-4px;
    width:4px;
    height:4px;
    border-radius:50%;
    background-color:#ff0000;
    visibility: hidden;
}

#cursorPointer.shown {
    visibility: visible;
}

#cursorTracker {
    position:absolute;
    top:0;
    left:0;
    width:32px;
    height:32px;
    border-radius:50%;
    background-color:#23c08c;
    transform:scale(0.125);
    transform-origin:50% 50%;
    visibility:hidden;
}

#cursorTracker.ripple-playing {
    visibility:visible;
    opacity:0;
    transform:scale(1);
    transition:visibility 320ms,opacity 240ms 80ms ease-out,transform 320ms 0s ease-out;
}

#cursorTracker-bak {
    position: absolute;
    top: 0;
    left: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background-color: #23c08c;
    transform: scale(0.125);
    transform-origin: 50% 50%;
    visibility: hidden;
}

#cursorTracker.ripple-repeat {
    animation-name: kf-ripple;
    animation-iteration-count: infinite;
    animation-duration: 1s;
}

@keyframes kf-ripple {
    0% {
        visibility:hidden;
        transform:scale(0.125);
        transform-origin:50% 50%;
    }
    100% {
        visibility:visible;
        opacity:0;
        transform:scale(1);
    }
}

@keyframes kf-ripple-v2 {
    0% {
        visibility:hidden;
        transform:scale(0.125);
        transform-origin:50% 50%;
    }
    100% {
        visibility:visible;
        opacity:0;
        transform:scale(1);
    }
}

.billows2 {
    position:absolute;
    top:0;
    left:0;
    width:32px;
    height:32px;
    border-radius:50%;
    background-color:#23c08c;
    transform:scale(0.125);
    transform-origin:50% 50%;
    visibility:hidden;
}

.billows2.ripple-playing {
    visibility:visible;
    opacity:0;
    transform:scale(1);
    transition:visibility 320ms,opacity 240ms 80ms ease-out,transform 320ms 0s ease-out;
}

#coefficientBox {
    width: 188px;
    /*height: 22px;*/
    /*background-color: rgba(35, 192, 140, 0.5);*/
}

#coefficientBox > div {
    width: 100%;
    height: 22px;
}

#coefficientBox > div:hover {
    background-color: rgba(9, 220, 255, 0.2);
}

#coefficientBox > div > p {
    float: left;
    line-height: 22px;
    font-size: 13px;
    color: #fff;
    margin: 0;
}

#coefficientBox > div > p.name {
    width: 18px;
    font-weight: bold;
    text-align: right;
    color: #ed39b6;
    color: #67ce67;
}

#coefficientBox > div > p.value {
    margin: 0 10px 0 10px;
}

#coefficientBox > div > p.coords {
    color: #23c08c;
    color: #3a82f7;
}

#coefficientBox > div > p.offset {
    color: #ff3f3f;
    color: #6ac5dd;
}

#coefficientBox > div > p.position {
    color: #2b8bec;
    color: #f1a33b;
}

#coefficientBox > div > p.latest {
    color: #000;
}

#coefficientBox > div > p.total {
    color: #67ce67;
    color: #e00;
}

#centralArea {
    width: 48px;
    height: 48px;
    transform: scale(0.1);
    transform-origin: 50% 50%;
    background-color: rgba(35, 192, 140, 0.7);
    visibility: hidden;
}